define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {

  var Controller = {
    index: function () {
      // 初始化表格参数配置
      Table.api.init({
        extend: {
          index_url: 'order/index' + location.search,
          add_url: 'order/add',
          edit_url: 'order/edit',
          del_url: 'order/del',
          multi_url: 'order/multi',
          import_url: 'order/import',
          table: 'order',
        }
      });

      var table = $("#table");

      // 初始化表格
      table.bootstrapTable({
        url: $.fn.bootstrapTable.defaults.extend.index_url,
        pk: 'id',
        sortName: 'id',
        fixedColumns: true,
        fixedRightNumber: 1,
        columns: [
          [
            {checkbox: true},
            {field: 'id', title: __('Id')},
            {field: 'company.name', title: '企业名称'},
            {field: 'link_name', title: '联系人'},
            {field: 'link_phone', title: '联系电话'},
            {field: 'address', title: '地址'},
            {
              field: 'agent.name', title: '服务站|或者代理', formatter: function (value, item, index) {
                if (value == null) {
                  return '待分配';
                }
                return value;
              }
            },
            {field: 'name', title: __('Name'), operate: 'LIKE'},
            // {
            //   field: 'product',
            //   title: '产品分类',
            //   operate: 'LIKE',
            //   formatter: function (value, item, index) {
            //     if (value && value.length > 0) return value.join();
            //   }
            // },
            // {
            //   field: 'env',
            //   title: '环境分类',
            //   operate: 'LIKE',
            //   formatter: function (value, item, index) {
            //     if (value && value.length > 0) return value.join();
            //   }
            // },
            {field: 'content', title: __('Content'), operate: 'LIKE'},
            {
              field: 'status', title: '订单状态', formatter: function (value, item, index) {
                if (value === 0) {
                  return '未支付';
                } else if (value === 1) {
                  return '支付未提交凭证';
                } else if (value === 2) {
                  return '通过未派单';
                } else if (value === 3) {
                  return '已派单';
                } else if (value === -1) {
                  return '审核未通过';
                }//report
              }
            },
            {field: 'price', title: '订单价格'},
            {
              field: 'voucher_img',
              title: '支付凭证',
              operate: false,
              events: Table.api.events.image,
              formatter: Table.api.formatter.image
            },
            {field: 'create_time', title: '下单时间', operate: 'RANGE', addclass: 'datetimerange', autocomplete: false},
            {field: 'update_time', title: '修改时间', operate: 'RANGE', addclass: 'datetimerange', autocomplete: false},
            {
              //-1驳回 0代理待审核 1平台待审核 2审核通过
              field: 'report.status', title: "报告状态", formatter:
                function (value, item, index) {
                  if (value === 0) {
                    return '代理待审核|或者未上传';
                  } else if (value === 1) {
                    return '平台待审核';
                  } else if (value === 2) {
                    return '通过未派单';
                  }  else if (value === -1) {
                    return '驳回';
                  }//report
                }
            },
            {
              //-1驳回 0代理待审核 1平台待审核 2审核通过
              field: 'certificate.id', title: "证书状态", formatter:
                function (value, item, index) {
                  if (value > 0) {
                    return '已上传';
                  }
                }
            },
            {
              field: 'operate',
              title:
                __('Operate'),
              table:
              table,
              events:
              Table.api.events.operate,
              formatter:
              Table.api.formatter.operate,
              buttons:
                [
                  {
                    name: 'report',
                    title: "上传报告",
                    classname: 'btn btn-xs btn-primary btn-dialog',
                    icon: 'fa fa-plus',
                    url: 'report/upload',
                    callback: function (data) {
                      Layer.alert("接收到回传数据：" + JSON.stringify(data), {title: "回传数据"});
                    }
                  },
                  {
                    name: 'certificate',
                    title: "上传证书",
                    classname: 'btn btn-xs btn-primary btn-dialog',
                    icon: 'fa fa-upload',
                    url: 'certificate/upload',
                    callback: function (data) {
                      Layer.alert("接收到回传数据：" + JSON.stringify(data), {title: "回传数据"});
                    }
                  },
                ]
            }
          ]
        ]
      })
      ;

      // 为表格绑定事件
      Table.api.bindevent(table);
    },
    add: function () {
      Controller.api.bindevent();
    },
    edit: function () {
      Controller.api.bindevent();
    },
    api: {
      bindevent: function () {
        Form.api.bindevent($("form[role=form]"));
      }
    }
  };
  return Controller;
});
